package com.itcam.kuangstudy.annotation_;

/**
 * Author:Cammy.Wu
 * Date:2024-05-11
 * Description:
 */

import java.lang.annotation.*;

/**
 * 元注解
 * 元注解的作用就是负责注解其他注解
 * 定义在java.lang.annotation包中
 *
 * @Targe:用于描述注解的适用范围
 * @Retetion:表示需要在什么级别保存该注解信息，用于描述注解的生命周期（SOURCE<CLASS<RUNTIME）
 * @Document:说明该注解将被包含在javadoc中
 * @Inherited:说明子类可以继承父类中的该注解
 */
@MyAnnotation
public class Test02 {
    public void test() {

    }
}

// 定义一个注解
// Target 标识我们的注解可以用在哪些地方
@Target(value = {ElementType.METHOD, ElementType.TYPE})

// Retention 标识我们的注解在什么地方还有效
// runtime > class > sources
@Retention(value = RetentionPolicy.RUNTIME)

// Documented 表示是否将我们的注解生成在JAVAdoc中
@Documented

// Inherited 子类可以继承父类的注解
@Inherited
@interface MyAnnotation {

}
